package util.states;

import java.util.ArrayList;
import java.util.List;

import enums.EPState;
import services.DAO;

public class ConfiguracionColegioState extends StateLogic {

	public ConfiguracionColegioState() {

	}

	@Override
	public List<String> validateTransition() {
		List<String> errores = new ArrayList<String>();

		if (DAO.execute(
				"SELECT coor.id FROM Coordinador coor WHERE coor.idColegio=:idColegio",
				1, "idColegio", colegio.getId()) == null)
			errores.add("Falta crear al menos un coordinador");

		if (DAO.execute(
				"SELECT mc FROM Materia mc WHERE mc.idColegio=:idColegio", 1,
				"idColegio", colegio.getId()) == null)
			errores.add("Falta configurar materias");
		if (DAO.execute(
				"SELECT mc FROM Grado mc WHERE mc.idColegio=:idColegio", 1,
				"idColegio", colegio.getId()) == null)
			errores.add("Falta configurar grados");

		if (DAO.execute(
				"SELECT mc FROM MateriaGrado mc WHERE mc.idColegio=:idColegio",
				1, "idColegio", colegio.getId()) == null)
			errores.add("Falta configurar las materias de los grados");

		return errores;
	}

	@Override
	public EPState getNext() {
		return EPState.CONFIG_PERIODO;
	}

	@Override
	public void enterTransition() {
		colegio.setIdCalendarioAcademicoActual(null);
		colegio.setIdPeriodoActual(null);
		DAO.merge(colegio);
	}

}
